using System;
using System.Net;
using ICIA.ARojas.Silverlight.DataService;
using Didsoft.Silverlight.ViewModel.Data;

namespace ICIA.ARojas.Visual.DestinoFisico.ViewModel
{
    public class VmDestinoFisico : DataModelBase<ICIA.ARojas.Silverlight.Entities.DestinoFisico>
    {
        #region bindables

        private ICIA.ARojas.Silverlight.Entities.DestinoFisico destinoPadre;
        public ICIA.ARojas.Silverlight.Entities.DestinoFisico DestinoPadre
        {
            get { return destinoPadre; }
            set { destinoPadre = value; FirePropertyChanged("DestinoPadre"); }
        }


        private string mensajeAsignando;
        public string MensajeAsignando
        {
            get { return mensajeAsignando; }
            set { mensajeAsignando = value; FirePropertyChanged("MensajeAsignando"); }
        }

        private string nombreDestinoPadre;
        public string NombreDestinoPadre
        {
            get { return nombreDestinoPadre; }
            set { nombreDestinoPadre = value; FirePropertyChanged("NombreDestinoPadre"); }
        }

	    #endregion        

        #region constructor

        public VmDestinoFisico()
        {
            base.SetDataService(new DestinoFisicoDataService());
            base.GetAll();

            NewCommand.CommandExecuted += new EventHandler<EventArgs>(NewCommand_CommandExecuted);
            CancelCommand.CommandExecuted += new EventHandler<EventArgs>(CancelCommand_CommandExecuted);
        }

        void CancelCommand_CommandExecuted(object sender, EventArgs e)
        {
            MensajeAsignando = string.Empty;
            NombreDestinoPadre = string.Empty;
        }

        void NewCommand_CommandExecuted(object sender, EventArgs e)
        {
            if (SelectedItem != null)
            {
                SelectedItem.DestinoFisicoPadre = DestinoPadre;
                MensajeAsignando = "Agregando Destino fisico para :";
                NombreDestinoPadre = DestinoPadre!=null?DestinoPadre.Nombre:"Ninguno, es Raiz Padre";
            }
        }
        
        public override void PreSave()
        {
            //if (SelectedItem != null)
            //    SelectedItem.DestinoFisicoPadre = DestinoPadre;
        }

        #endregion
    }
}


